home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_19_1987_Transactor_Publishing.d64 / menus demo (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  6KB  |  234 lines

  1. 100 rem save "0:menus demo",8
  2. 110 rem 'hires menus demonstration
  3. 120 if peek(49153)<>194 then load "hires",8,1
  4. 130 if peek(32769)<> 97 then load "menus",8,1
  5. 140 :
  6. 150 poke52,128:poke56,128:clr:rem reserve memory
  7. 160 :
  8. 170 rem 'hires' variables
  9. 180 hires=49152:draw=hi+3:plot=dr+3
  10. 190 mve=pl+3:clscr=mv+3:dmode=cl+3
  11. 200 selpc=dm+3:colour=se+3:box=co+3
  12. 210 text=bo+3:prnt=te+3:chset=pr+3
  13. 220 trap=ch+3
  14. 230 :
  15. 240 rem 'menus' variables
  16. 250 menus=32768
  17. 251 mnum=me+3
  18. 252 mitm=mn+3
  19. 253 mflg=mn+2
  20. 254 mouse=mi+3
  21. 255 mb=mo+3
  22. 256 mx=mb+3:my=mx+3
  23. 260 :
  24. 270 :
  25. 280 rem user demo - experiment with it
  26. 285 :
  27. 290 rem c-1350 mouse in control port 2
  28. 295 :
  29. 300 sys hires,0,3,0:poke53280,14
  30. 310 tt$="[215]orkbench  [214]ersion 1.0  30717 bytes free"
  31. 320 sys prnt,0,0,chr$(14)+tt$
  32. 325 sys prnt,12,10,"[215]orking ....."
  33. 330 gosub1000'build the strings
  34. 335 sys prnt,12,10,"             "
  35. 340 sys menus clr:rem clear menu lists
  36. 350 sys mouse,1  :rem set arrow cursor
  37. 355 :
  38. 360 rem build the menus
  39. 370 sys menus,1,0,1," [198]ile ",1
  40. 371 sys menus,1,1,1," [207]pen"
  41. 372 sys menus,1,2,1," [211]how [201]nfo..."
  42. 373 sys menus,1,3,0,"---------------"
  43. 374 sys menus,1,4,1," [206]ew [198]older..."
  44. 375 sys menus,1,5,1," [195]lose [198]older"
  45. 376 sys menus,1,6,1," [195]lose [215]indow"
  46. 377 sys menus,1,7,0,"---------------"
  47. 378 sys menus,1,8,1," [198]ormat..."
  48. 379 :
  49. 380 sys menus,2,0,1," [197]dit ",8
  50. 381 sys menus,2,1,1,edit$, 192or1
  51. 382 sys menus,2,2,1,type$, 192or5
  52. 383 sys menus,2,3,1,pen$,  192or1
  53. 384 sys menus,2,4,1,erase$,192or5
  54. 385 sys menus,2,5,1,fill$, 192or1
  55. 386 sys menus,2,6,1,cube$, 192or5
  56. 387 sys menus,2,7,1,spray$,192or1
  57. 388 sys menus,2,8,1,actn$, 192or5
  58. 389 :
  59. 390 sys menus,3,0,1,faunts$,128or15
  60. 391 sys menus,3,1,1," [208]lain",41
  61. 392 sys menus,3,2,1,italic$,128or33
  62. 393 sys menus,3,3,1,script$,128or13
  63. 394 sys menus,3,4,0,"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  64. 395 sys menus,3,5,2," [193]lign [204]eft",42
  65. 396 sys menus,3,6,1," [193]lign [205]iddle ",36
  66. 397 sys menus,3,7,1," [193]lign [210]ight",17
  67. 398 :
  68. 399 :
  69. 400 sys menus,4,0,1," [199]oodies ",23
  70. 401 sys menus,4,1,1,disk$, 192or1
  71. 402 sys menus,4,2,1,paper$,192or1
  72. 403 sys menus,4,3,2,mouse$,192or1
  73. 404 sys menus,4,4,1,cmlg$, 192or1
  74. 405 sys menus,4,5,0,""
  75. 406 sys menus,4,6,1," [203]ey "
  76. 407 :
  77. 408 :
  78. 409 :
  79. 500 rem display menu bar & white mouse
  80. 510 sys menus on,7,6:sys mouse on,1
  81. 520 :
  82. 530 rem main program loop start
  83. 540 :
  84. 550 rem poll variables as needed
  85. 560 nm=peek(mn):im=peek(mi):bt=peek(mb)
  86. 570 xm=peek(mx)+256*peek(mx+1)
  87. 580 ym=peek(my)
  88. 590 :
  89. 600 rem 'on nm gosub xxx,xxx,xxx,xxx'
  90. 610 if nm then print nm,im:poke(mn),0
  91. 620 :
  92. 630 rem if bt=1 then 'act on right btn
  93. 640 if bt=255 goto720 'act on left btn
  94. 650 :
  95. 660 rem try sys draw,rnd(1)*320,rnd(1)*180
  96. 670 rem try if bt=255 then sys draw,xm,ym
  97. 680 :
  98. 690 goto530 'main loop
  99. 700 :
  100. 710 remove mouse,menu bar, await keypress
  101. 720 sys mouse off:sys menus off
  102. 730 wait198,1:get a$:sys text:end
  103. 740 :
  104. 799 :
  105. 999 rem subroutines to build strings
  106. 1000 ns=48:gosub2000:edit$=a$
  107. 1002 ns=48:gosub2000:type$=a$
  108. 1004 ns=48:gosub2000:pen$=a$
  109. 1006 ns=48:gosub2000:erase$=a$
  110. 1008 ns=48:gosub2000:fill$=a$
  111. 1010 ns=48:gosub2000:cube$=a$
  112. 1012 ns=48:gosub2000:spray$=a$
  113. 1014 ns=48:gosub2000:actn$=a$
  114. 1016 ns=56:gosub2000:faunts$=a$
  115. 1018 ns=56:gosub2000:italic$=a$
  116. 1020 ns=56:gosub2000:script$=a$
  117. 1022 ns=48:gosub2000:disk$=a$
  118. 1024 ns=48:gosub2000:paper$=a$
  119. 1026 ns=32:gosub2000:mouse$=a$
  120. 1028 ns=48:gosub2000:cmlg$=a$
  121. 1030 return
  122. 2000 a$="":for i=1 to ns:read byte
  123. 2002 a$=a$+chr$(byte):next
  124. 2004 f=fre(""):return
  125. 2006 :
  126. 2999 rem string data
  127. 3000 rem edit$ - [image$-2]
  128. 3005 data 0,124,64,64,64,64,0,0
  129. 3010 data 0,0,0,0,0,0,0,0
  130. 3015 data 0,62,2,2,2,2,0,0
  131. 3020 data 0,0,64,64,64,64,124,0
  132. 3025 data 0,0,0,0,0,0,0,0
  133. 3030 data 0,0,2,2,2,2,62,0
  134. 3035 rem type$ - [image$-2]
  135. 3040 data 0,7,15,28,0,0,0,0
  136. 3045 data 0,255,255,24,24,24,24,24
  137. 3050 data 0,224,240,56,0,0,0,0
  138. 3055 data 0,0,0,0,0,0,0,0
  139. 3060 data 24,24,24,24,24,60,126,0
  140. 3065 data 0,0,0,0,0,0,0,0
  141. 3070 rem pen$ - [image$-2]
  142. 3075 data 0,0,0,0,0,0,0,0
  143. 3080 data 0,254,254,130,146,178,162,162
  144. 3085 data 0,0,0,0,0,0,0,0
  145. 3090 data 0,0,0,0,0,0,10,0
  146. 3095 data 130,146,238,68,40,16,176,0
  147. 3100 data 0,0,0,0,0,0,0,0
  148. 3105 rem erase$ - [image$-2]
  149. 3110 data 0,0,0,0,0,0,0,0
  150. 3115 data 0,0,0,15,31,33,66,132
  151. 3120 data 0,0,0,224,160,64,64,128
  152. 3125 data 1,3,4,4,3,0,0,0
  153. 3130 data 9,242,12,8,240,0,0,0
  154. 3135 data 0,0,0,0,0,0,0,0
  155. 3140 rem fill$ - [image$-2]
  156. 3145 data 0,0,0,0,0,1,3,7
  157. 3150 data 0,48,32,64,128,0,255,255
  158. 3155 data 0,0,0,0,0,56,216,152
  159. 3160 data 15,31,15,3,0,0,0,0
  160. 3165 data 255,254,252,248,240,32,0,0
  161. 3170 data 24,8,8,8,8,0,0,0
  162. 3175 rem cube$ - [image$-2]
  163. 3180 data 0,0,3,12,16,28,23,26
  164. 3185 data 48,204,3,0,0,1,7,223
  165. 3190 data 0,0,0,192,96,224,224,224
  166. 3195 data 21,26,21,14,3,0,0,0
  167. 3200 data 127,191,127,191,126,248,32,0
  168. 3205 data 224,224,224,128,0,0,0,0
  169. 3210 rem spray$ - [image$-2]
  170. 3215 data 0,0,1,6,8,24,16,16
  171. 3220 data 0,0,255,126,24,126,153,153
  172. 3225 data 0,16,64,8,32,8,0,0
  173. 3230 data 16,16,0,0,0,0,0,0
  174. 3235 data 153,153,255,255,255,255,0,0
  175. 3240 data 0,0,0,0,0,0,0,0
  176. 3245 rem actn$ - [image$-2]
  177. 3250 data 0,0,0,0,0,0,0,12
  178. 3255 data 0,0,1,3,7,14,29,59
  179. 3260 data 0,192,192,128,0,0,128,96
  180. 3265 data 14,15,7,3,3,1,0,0
  181. 3270 data 118,185,221,222,191,255,255,255
  182. 3275 data 216,180,108,216,48,160,192,128
  183. 3280 rem faunts$ - [image$-1]
  184. 3285 data 0,0,0,0,0,0,0,0
  185. 3290 data 126,144,80,30,80,144,144,96
  186. 3295 data 0,0,120,206,205,204,120,0
  187. 3300 data 0,0,56,100,164,37,66,0
  188. 3305 data 0,48,252,48,48,241,14,0
  189. 3310 data 0,24,36,68,130,3,60,0
  190. 3315 data 0,0,0,0,0,0,0,0
  191. 3320 rem italic$ - [image$-1]
  192. 3325 data 0,0,0,0,0,0,0,0
  193. 3330 data 30,12,12,12,24,24,60,0
  194. 3335 data 0,12,63,12,24,24,14,0
  195. 3340 data 0,0,30,3,62,102,62,0
  196. 3345 data 0,28,12,12,24,24,60,0
  197. 3350 data 0,12,0,28,24,24,60,0
  198. 3355 data 0,0,30,48,96,96,60,0
  199. 3360 rem script$ - [image$-1]
  200. 3365 data 0,0,0,0,0,0,0,0
  201. 3370 data 114,140,192,56,6,113,129,126
  202. 3375 data 0,0,112,200,192,193,126,0
  203. 3380 data 0,0,80,104,200,69,69,0
  204. 3385 data 24,0,24,24,24,249,30,0
  205. 3390 data 0,176,200,136,200,177,142,128
  206. 3395 data 0,48,252,48,48,241,14,0
  207. 3400 rem disk$ - [image$-2]
  208. 3405 data 0,127,64,64,64,64,64,64
  209. 3410 data 0,255,0,0,126,129,129,129
  210. 3415 data 0,254,2,2,2,6,2,2
  211. 3420 data 64,64,64,64,64,64,127,0
  212. 3425 data 126,0,24,24,24,0,255,0
  213. 3430 data 2,2,2,2,2,2,254,0
  214. 3435 rem paper$ - [image$-2]
  215. 3440 data 0,15,16,32,32,32,16,8
  216. 3445 data 0,255,0,0,0,0,0,0
  217. 3450 data 0,248,16,32,32,32,16,8
  218. 3455 data 4,30,33,65,65,34,31,0
  219. 3460 data 0,0,0,0,0,0,255,0
  220. 3465 data 8,4,2,2,2,4,248,0
  221. 3470 rem mouse$ - [image$-2]
  222. 3475 data 0,127,81,81,81,95,72,72
  223. 3480 data 0,255,69,69,69,125,9,9
  224. 3485 data 72,72,72,79,80,96,127,0
  225. 3490 data 9,9,9,249,5,3,255,0
  226. 3495 rem cmlg$ - [image$-2]
  227. 3500 data 0,127,64,65,71,79,79,95
  228. 3505 data 0,255,0,252,252,255,131,3
  229. 3510 data 0,254,2,2,2,226,194,2
  230. 3515 data 95,79,79,71,65,64,127,0
  231. 3520 data 3,131,255,252,252,0,255,0
  232. 3525 data 2,194,226,2,2,2,254,0
  233. 3530 end of data
  234.